home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / gnat1792.zip / gnat179b / examples / demo1.adb next >
Text File  |  1994-05-13  |  1KB  |  59 lines

  1. with Instr; use Instr;
  2. with Gen_List;
  3. with Io; use Io;
  4. procedure Demo1 is 
  5.  
  6.    type Acc is access all Instrument'Class;
  7.     
  8.    package Dash_Board is new Gen_List (Acc);
  9.    use Dash_Board;
  10.    
  11.    procedure Print_Dash_Board (L : List) is
  12.       L1 : List := L;
  13.       A : Acc;
  14.    begin
  15.  
  16.       while L1 /= Nil loop
  17.          A := Element (L1);
  18.          Display_Value (A.all);
  19.          L1 := Tail (L1);
  20.       end loop;
  21.       
  22.       New_Line;
  23.       
  24.    end Print_Dash_Board;
  25.  
  26.  
  27.    Speed : aliased Speedometer;
  28.    Fuel : aliased Gauge;
  29.    Oil, Water : aliased Graphic_Gauge;
  30.    Time : aliased Clock;
  31.    Chrono : aliased Chronometer;
  32.  
  33.    DB : List := Nil;
  34.    
  35. begin
  36.    Set_Name (Speed, "Speed");
  37.    Set_Name (Fuel, "Fuel");
  38.    Set_Name (Water, "Water");
  39.    Set_Name (Oil, "Oil");
  40.    Set_Name (Time, "Time");
  41.    Set_Name (Chrono, "Chronometer");
  42.  
  43.    Speed.Value := 45; --  mph
  44.    Fuel.Value := 60; --  %   
  45.    Water.Value := 80; -- %
  46.    Oil.Value := 30; --  %   
  47.    Init (Time, 12, 15, 00);
  48.    Init (Chrono, 22, 12, 56);
  49.    
  50.    DB := Append   (Speed'Access, 
  51.            Append (Fuel'Access, 
  52.            Append (Water'Access,
  53.            Append (Oil'Access,
  54.            Append (Time'Access, Chrono'Access)))));
  55.  
  56.    Print_Dash_board (DB);
  57.  
  58. end Demo1;
  59.